Collection 相關 Protocol:
Sequence → Collection → Bidirectional Collection → Random Access Collection
Sequence:會呼叫下一個。Iterator。
Collection:透過 index 存取。Dictionary、Set。
Bidirectional Collection:可以雙向 loop 。String。
Random Access Collection:透過 index ± Int 獲得另一個可用的 index。Array。
isEmpty
=> .startIndex == .endIndex
Generic
為什麼 .isEmpty 會比 .count == 0 好?
=> 因為 .isEmpty 只需要比較開始和結束的 index 是否一樣即可判斷,而數量可能要 loop 所有資料才能判斷。
Sequence、Collection、BidirectionalCollection、RandomAccessCollection,他們的特性是什麼?
=>
Sequence:知道如何找到下一個資料。
Collection:可以用 [index] 存取資料。
BidirectionalCollection:可以雙向存取資料。
RandomAccessCollection:無論存了多少資料都可以用一個簡單的運算直接找到資料位置。
Set 和 Set 都是 Set,表示他們是同一種類型嗎?
=> 不是,類型包含實際使用時<>裡所賦予的類型,所以他們是分別獨立的類型。
影片連結:https://youtu.be/-k5HD4_YqZk?si=eGb6DTTfiJBeq8xR